1. Field of the Invention
The present invention relates generally to a computer implemented method, data processing system, and computer program product for robust unmounting of file systems from a client data processing system. More specifically, the present invention relates to recurring unmounts of a file system, prior to forcing a file system to unmount, if necessary.
2. Description of the Related Art
Architects of modern data centers have found a way to build flexible storage for data that permits scaling addressable storage. One way to build such a data center is to implement network file systems, for example, Network File System (NFS). A file system is an apparatus for organizing files and associated metadata to enable access of such files and metadata within non-volatile storage, such as, for example, hard disk drives. Such systems may be based on Request For Comments (RFC) 1094, RFC 1813, RFC 3010, RFC 3530, for example. Among the benefits established for such systems is the ability to present disk stores located on a network to a client machine in a manner as though such disk stores were locally attached to the client machine.
Typically, when a client data processing system boots up, the client mounts disk stores in accordance with a file systems table or fstab (also known as file structure table). In complex systems, the client may have over a hundred disk stores so mounted. These disk stores, as well as other permanent storage, can be written to, but at a slower rate than memory local to the client data processing system. Accordingly, disk stores, and the file systems that they support, can respond sluggishly, particularly when disk writes are finalized prior to shutting down.
Among the tasks assigned to administrators of a system, is the task to perform routine maintenance, repair and upgrades. Accordingly, the client system may require rebooting or even shutting down. Delays in shutting down can occur because of complex associations with remote file systems using a Network File System (NFS). For example, a server that hosts one or more file systems for a client may be down for repairs or otherwise unreachable over a network. A server is a data processing system that processes data in response to requests by other data processing systems or clients. A client, in this example, is a data processing system that makes requests to process data to a server.
NFS clients rely on block storage devices implemented as file systems. A block storage device can be a hard drive or other storage device. Such computers rely on a system of performing preliminary writes of data to long-latency storage by buffering one or more write results to memory, and then triggering a complete transfer of the data from memory to the storage in a single action. This method accomplishes some efficiency, but can leave data susceptible to data corruption if the storage is disconnected or unavailable from the memory. System architects use a mechanism to obtain a consistent state between disk writes and disk reads buffered in a system's volatile memory and the host block device. One such mechanism is the flush command. A flush command instructs a data processing system to write completely any data of a read/write buffer to disk or other storage. Accordingly, a client computer can shutdown or otherwise disconnect at such that the state of the client computer matches the state of a supporting, but remote file system.
Prior art shutdown techniques of a client involved unmounting each file system in sequence, always waiting for a previously commanded unmount to be acknowledged by a server prior to issuing a further unmount command to the server. Even in cases where an acknowledgement was not received within a reasonable timeout period, the client would repeat unmount commands for a subsequent file system hosted on a server that previously was unresponsive. Often repeated conventional unmount commands are unproductive, and can prolong the shutdown of a client.
Accordingly, it can be helpful for a client to discover and avoid an unresponsive server.